package com.doubleview.demo

/**
 * @author huchengchao@kuaishou.com
 * Created on 2021-11-20
 */
//=======================闭包的定义=======================
def c1 = {
    println 'hello'
}
def c2 = { a, b ->
    println a
    println b
}
def c3 = { int a, String b ->
    println a
    println b
}
def c4 = { ->
    println 'hello'
}
def c5 = {
    println it
}
def c6 = {
    return it + 1
}
def c7 = {
    it + 1
}

// 闭包调用可以用call，也可以直接像Java方法一样加括号调用。
def c = {
    println it
}
c.call('text1')
c('text2')


// 调用带参数的闭包/函数，通常可以省略括号，如果最后一个参数是闭包，还可以单独写在括号后面，如下
println('hello')
println 'hello'

def func = { text, ClosureTest closure ->
    println text
    closure()
}

func('1', {
    println '2'
})
func '3', {
    println '4'
}
func('5') {
    println '6'
}